Authenticated checkin via passive nfc

ABSTRACT

The present disclosure involves a method of verifying user check-ins to a venue. The method includes initializing a digital check-in chain for a venue. The method includes expanding, electronically by a processor, the check-in chain with a plurality of check-in entries that each correspond to a visit to the venue by a respective user. Each check-in entry on the check-in chain is generated in response to one or more preceding check-in entries on the check-in chain. The method includes detecting fraudulent check-in entries in response to a split in the check-in chain. The method includes removing the fraudulent check-in entries from the check-in chain.

BACKGROUND

1. Technical Field

The present disclosure generally relates to enhancing security withtransactions and, more particularly, to authenticating an NFC-enabledcheck-in.

2. Related Art

Check-ins in a social media context have become popular in recent years.These services allow a user who is visiting a particular venue (e.g., astore or a restaurant) to announce on social media that he has “checkedin” at that venue. Users who frequently check into a specific venue mayearn points or titles such as “mayors” of such venue. These users mayalso receive rewards from the venues that they frequently check into sothat they are encouraged to perform more check-ins in the future,thereby raising the venue's popularity. However, traditional check-inmechanisms may lack sufficient fraud prevention, thereby allowingscheming users to “check in” to a venue without physically being there.These types of fraud undermine the credibility of check-in systems andas such may hurt its future growth.

Therefore, while existing check-in mechanisms have been generallyadequate for their intended purposes, they have not been entirelysatisfactory in every aspect. It would be advantageous to add additionallevels of security to check-in mechanisms so that fraudulent check-insmay be quickly discovered and addressed.

SUMMARY

One of the broader forms of the present disclosure involves a method.The method involves: initializing a digital check-in chain for a venue;expanding, electronically by a processor, the check-in chain with aplurality of check-in entries that each correspond to a visit to thevenue by a respective user, wherein each check-in entry on the check-inchain is generated in response to one or more preceding check-in entrieson the check-in chain; detecting fraudulent check-in entries in responseto a split in the check-in chain; and removing the fraudulent check-inentries from the check-in chain.

Another one of the broader forms of the present disclosure involves anapparatus comprising a non-transitory, tangible computer readablestorage medium storing a computer program. The computer program hasinstructions that when executed, perform: initializing a digitalcheck-in chain for a venue; expanding, electronically by a processor,the check-in chain with a plurality of check-in entries that eachcorrespond to a visit to the venue by a respective user, wherein eachcheck-in entry on the check-in chain is generated in response to one ormore preceding check-in entries on the check-in chain; detectingfraudulent check-in entries in response to a split in the check-inchain; and removing the fraudulent check-in entries from the check-inchain.

Yet another one of the broader forms of the present disclosure involvesa method. The method involves: providing a check-in seed for a venue;receiving a first check-in entry, the first check-in entry being afunction of the check-in seed; verifying, electronically by a processor,the first check-in entry; forming a check-in chain by appending thefirst check-in entry after the check-in seed if the first check-in entryis successfully verified; receiving a second check-in entry, the secondcheck-in entry being a function of the check-in seed and the firstcheck-in entry; verifying, electronically by the processor, the secondcheck-in entry; and expanding the check-in chain by appending the secondcheck-in entry after the first check-in entry if the second check-inentry is successfully verified.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-2 illustrate example flowcharts for performing cryptographyaccording to various aspects of the present disclosure.

FIG. 3 illustrates an example block diagram for performing check-insaccording to various aspects of the present disclosure.

FIGS. 4-5 illustrate flowcharts containing process flows for verifyingcheck-ins according to various aspects of the present disclosure.

FIG. 6 illustrates a block diagram of a computer system for implementingvarious methods and devices described according to various aspects ofthe present disclosure.

DETAILED DESCRIPTION

It is to be understood that the following disclosure provides manydifferent embodiments, or examples, for implementing different featuresof the present disclosure. Specific examples of components andarrangements are described below to simplify the present disclosure.These are, of course, merely examples and are not intended to belimiting. Various features may be arbitrarily drawn in different scalesfor simplicity and clarity.

As social media continues to evolve, various services based on socialmedia have gained popularity in recent years. One of these services isthe “check-in” service offered by companies such as FOURSQUARE®. Whilethe details may vary, the general concept behind check-ins usuallyinvolves the following: a user arrives at a specific venue, for examplea merchant's store; the user announces—often through a social networkingservice such as TWITTER® or FACEBOOK®—that he has checked into themerchant's store; the merchant may keep track of the number of check-insfor each user and may reward the user with a prize (e.g., a free pizzaor a discounted hotel stay) once the user reaches a certain number ofcheck-ins.

Traditionally, a mechanism to verify the user's check-in at a particularlocation is through Global Positioning System (GPS). For example, a userwho carries a GPS-enabled communications device such as a smart-phone ora computer tablet may have his physical coordinates verified by way ofthe GPS signals sent through his phone or tablet. However, GPSverification may be time consuming and may not be reliable if the useris indoors, which is often the case if the check-in location is a storeor a restaurant.

To overcome the issues related to GPS-enabled check-ins, Near FieldCommunication (NFC) enabled check-ins have been implemented to replaceGPS-enabled check-ins. For example, a merchant may install an NFC tagdevice inside its facility (for example, near the entrance of thefacility). As users come inside the merchant's facility, they can “tag”the NFC tag device inside the facility by bringing their NFC-enabledcommunications devices in close proximity with the NFC tag device. Thistype of NFC tagging allows the users to be “checked in” to themerchant's facility.

However, existing systems and methods of NFC tagging may lack sufficientfraud prevention. As an example, a user intending to commit fraud caneasily copy the electronic information on a merchant's NFC tag deviceand create a duplicate copy of the tag. Using the duplicate NFC tagdevice, such user may then continue to conduct fraudulent “check-ins” ofthe merchant's facility without actually being at the merchant'sfacility. By engaging in such fraudulent transactions, said user mayquickly accrue check-in points and earn merchant rewards that he doesnot deserve. These types of security problems undermine the faith andperception of the public (both the merchant and other honest users)toward the “check-in” system and consequently may prevent its growth.

According to the various aspects of the present disclosure, an enhancedNFC-enabled check-in method and apparatus is discussed, which canquickly discover fraudulent check-ins and provide appropriate remedies.One aspect of the present disclosure involves cryptographic signatures,which is away to verify whether or not a document has been tampered withduring transit.

FIGS. 1 and 2 and the corresponding discussions below illustrate anexample of cryptographic signatures. Referring to FIG. 1, a flowchart ofa method 20 of a cryptographic signing is shown. The method 20 includesa step 25 in which an electronic document is provided. The electronicdocument may be any type of electronic file that can be read by acomputer, for example an E-mail.

The method proceeds to a step 30 in which the electronic document isprocessed with a hash function to generate a hash value. A hash functionis a mathematical procedure that receives a block of data as an inputand returns a fixed-size value as an output. The input data here is theelectronic document. The output of the hash function is referred to asthe hash value. Regardless of the size of the input data, the size ofthe output hash value remains the same. However, a change in the inputdata itself, even if minor, will cause a significant change of theoutput hash value. This property of the hash function is useful, as itcan be employed to monitor the integrity of electronic documents intransit.

The method 20 proceeds to a step 35 in which a cryptographic signatureof the hash value is generated with a private key. In more detail, a keygeneration algorithm may be used to generate a pair of cryptographickeys: a private key and a public key. In some embodiments, the privatekey and the public key are the only two factors of a large prime number.The sender of an electronic document keeps the private key to himself,but he can freely distribute the public key to other entities, forexample to the intended recipients of his electronic documents. The hashvalue generated in the step 30 is encrypted by such a private key, theresult of which is the cryptographic signature.

The method 20 then proceeds to a step 40 in which the cryptographicsignature is appended to the electronic document. A digital certificatemay be used to append the cryptographic signature to the electronicdocument. The digital certificate may be issued by a certificateauthority and may contain the public key and a variety of otheridentification information. Once the cryptographic signature is appendedto the electronic document, a digitally signed electronic document isready for transmission.

Referring now to FIG. 2, a flowchart of a method 50 of a cryptographicverification is shown. The method 50 includes a step 55 in which thedigitally signed electronic document is received by a recipient. Thedigitally signed electronic document may be separated into a bodyportion (which is the document itself) and a digital signature portion.The method 50 proceeds to a step 60 in which the body portion of theelectronic document is processed by the same hash function used in thestep 30 of the method 20. This produces a first hash value.

The method 50 proceeds to a step 70 in which the digital signature isverified using a public key obtained separately from the sender and thehash value calculated in step 60. If the electronic document has notbeen tampered with during transit, the first hash value and the secondhash value should be identical. On the other hand, if the electronicdocument has been tampered with, even if the change was very minor, thefirst hash value will be significantly different from the second value.In this manner, the recipient of the electronic document can determinewhether the sender's electronic document has been securely transmitted.

FIG. 3 is a block diagram of an example system for verifying theintegrity of user check-ins according to various aspects of the presentdisclosure. Referring to FIG. 3, a block diagram of a venue 100 isillustrated. The venue 100 may be privately owned by a merchant, such asa store, a restaurant, a bar, an entertainment facility, etc. The venue100 may also be publicly owned, such as a library, a park, a governmentbuilding, a school, etc. For ease of reference, an operator or owner ofthe venue 100 may thereafter be referred to as the venue 100.

To increase the popularity or visitor traffic of the venue 100, thevenue 100 may participate in a check-in scheme discussed above, forexample in a social media context. In other words, the venue 100 willallow its visitors to announce their check-ins at the venue through asocial media channel. The venue 100 will keep track of the number ofvisits by each visitor, and the venue 100 may also give rewards tofrequent visitors who meet or exceed a predetermined number ofcheck-ins.

To prevent fraud in the check-in process, the venue 100 subscribes to acheck-in monitoring service offered by a service provider 110. Theservice provider 110 may be a third party payment provider (e.g.,PAYPAL, INC®. of San Jose, Calif.), or another suitable entity. Theservice provider 110 has a computer server 120 that is configured toelectronically communicate with external devices as well as processelectronic information. In some embodiments, the server 120 providesand/or runs a check-in application software (or “app”).

The venue 100 installs the check-in app on one of its computers. Thecheck-in app generates a public/private key pair. The private keyremains local (i.e., known only to the venue 100). The public key iselectronically sent to the server 120 of the service provider 110, whichstores it therein and associates the public key with the venue 100'saccount. The venue 100 also installs an NFC tag device 130 inside itsfacility. For example, if the venue is a restaurant, the NFC tag device130 may be installed on a wall by the entrance. The NFC tag device 130may be a read-write tag device. The NFC tag device 130 is operable toestablish radio communication with other NFC device in close proximity,for example within a few centimeters.

The check-in app downloaded by the venue 100 is used to initialize theNFC tag device 130. In an embodiment, the check-in app contacts theserver 120, which generates a seed value based on information that thevenue 100 provided to the service provider 110. For example, theinformation provided to the service provider may include informationabout the venue 100 such as its name, location (e.g., GPS coordinates),web-site address, etc. The seed value is generated in response to thisinformation and is then digitally signed by the server 120. The check-inapp has a certificate that allows it to verify that the seed value camedirectly from the server 120. The seed value with the server's signatureis then signed with the venue's private key. At this point, a check-inseed for a check-in chain (to be discussed below) is formed. Thecheck-in seed contains the seed value (generated by the server 120), theseed signature from the server 120, and the signature from the venue100.

Suppose a user 150 is visiting the venue 100. To facilitate the ensuingdiscussions, the user 150 is referred to as user A. The user A may alsobe a subscriber to the check-in service discussed above and may have hisown private and public key pair. The public key of the user A, as wellas user A′s account information, are electronically stored on the server120. The user A also has an NFC-enabled mobile communications device160, such as a smart phone or a computer tablet. The user A may beprompted to check in to the venue by tagging the NFC-enabled mobilecommunications device 160 with the NFC tag device 130, or otherwisebringing the devices 130 and 160 in close proximity.

The tagging of the devices 130 and 160 allows the mobile communicationsdevice 160 to read the existing check-in chain entry, which onlycontains the check-in seed at this point. The check-in app (downloadedto the mobile communications device 160) generates a unique useridentification (ID), which may contain a 128 bit number in someembodiments. The check-in app of the user also generates other relevantinformation, such as a timestamp corresponding to the time of thetagging. The unique user ID and the other relevant information maycollectively be referred to as information of the user A.

A new check-in chain (or tag) is then generated and written back to theNFC tag device 130. The new check-in chain is generated as a function ofthe previous check-in chain and the user A's information. In anembodiment, the new check-in contains: the check-in seed+the informationof the user A+the user A's digital signature of (the check-in seed+theuser A's information). In other words, both the check-in seed and theuser A's information—which includes the unique user ID—are collectivelysigned with the user's private key to generate the user A's digitalsignature. To simplify the following discussions, the combination of theuser A's information+the user A's digital signature of (the check-inseed+information of the user A) is replaced by the shorthand notation of“A”, and the check-in seed is replaced by the shorthand notation of “S”.Therefore, at this point, the new check-in chain looks like: S->A.

The new check-in chain (or new tag) is uploaded to the server 120, whichinforms the server 120 that user A has apparently checked into the venue100. The server 120 then verifies the new check-in chain using thepublic key associated with the user A's account and the public key ofthe venue 100. Specifically, the server 120 uses the public key of theuser A to verify the user A's account, and after that, the server 120uses the public key of the server 120 to verify the check-in seed. Ifverification is successful, the server 120 will record the new check-inchain and give credit for the check-in to the user A. The server 120also links the unique user ID to the user A's account.

Now suppose another user B visits the venue 100 after the user A. Theuser B is also a subscriber of the check-in services provided by thevenue 100 and the service provider 110. Similar to the user A, the userB also has an NFC-enabled communications device, which he uses to tagthe NFC tag device 130 at the venue 100 to notify the server 120 of hischeck-in. The tagging generates a new check-in chain in the similarmanner as described above with reference to user A. But now, theexisting chain seen by user B's NFC-enabled communications devicecontains not only the check-in seed, but also the user A's informationas well as the user A's digital signature. Thus, the user B's digitalsignature is generated as a function of the user A's information and theuser A's digital signature as well. In other words, the user B's digitalsignature is dependent on the previous signature on the check-inchain—the user A's digital signature.

After the server 120 verifies the user B's check-in (using the user B'spublic key), the server 120 also goes up the chain and verifies that theuser A's check-in that is reported by user B has not been tampered witheither, which can be done by using the user A's public key. At somepoint, the server 120 writes the new check-in chain into the NFC tagdevice 130. This may be performed asynchronously to the verificationthrough the entire check-in chain. For example, the client (user) maywrite the new appended chain immediately, and later send the value tothe server for verification. The client need not wait for the server torespond. The new check-in chain at this point may be expressed with theshorthand notation of S->A->B.

Suppose that users C and D also check in after user B. The sameprocedure discussed above is applied for these users' check-ins as well.Each time, the signature of the user who is at the end of the chain isgenerated as a function of all the previous signatures on the chain.Meanwhile, if nothing has been tampered with, the check-in seed remainsthe same, as do all previous check-ins and their correspondingsignatures. Thus, as each new user is checking in, he is effectivelyreporting back to the server that he is appending his signature to theend of the chain, and what the chain looks like from his perspective atthe time of his check-in. He is asserting—through encryption with hisprivate key—this to be true and nothing has been tampered with. Theserver 120 is the only entity who can verify each user's report, becausethe server 120 has the public key for each user. Through decryption withthe public keys, the server 120 can verify the signature of the lastuser on the chain, and then the signature of the previous user, so onand so forth, until the whole chain has been verified. As an analogy, itis similar to peeling the layers of an onion one at a time. This ensuresthe integrity of the entire chain reported by each user. After users Cand D have successfully checked in, the check-in chain can be expressedwith the shorthand notation of S->A->B->C->D.

Now suppose a nefariously minded user E is scheming to commit fraudulentcheck-ins. The user E may go to the venue 100 and read the check-inchain on the NFC tag device 130 at that time. He can make a copy of thechain on a duplicate NFC device. Thereafter he goes home and tries tocheck in continuously. His initial attempt may be successful, since fromthe server's perspective, the check-in chain now looks likeS->A->B->C->D->E. The user E may very well be checking in at the venue100.

Meanwhile, another user F may perform a legitimate check-in at the venue100. The server 120 will now receive a check-in chain that looks likeS->A->B->C->D->F. In other words, there is now a split in the chain: onefrom D to E, and the other one from D to F. The server 120 will knowthat fraud has been committed, but it will not immediately know whichuser is the one committing the fraud. However, as more and morelegitimate users check in after F, for example users G and H, the truebranch of the check-in chain will look like S->A->B->C->D->F->G->H,whereas the fraudulent branch of the check-in chain for example may looklike S->A->B->C->D->E->E->E. It will therefore become clear to theserver 120 that user E was lying. The busier the venue 100 (i.e., themore user traffic it has), the more quickly the server 120 can detectthe fraudulent check-in, since the true chain will be updated morequickly, whereas the fraudulent chain will be updated much more slowlyand in many cases updated by only the fraudulent user. The fraudulentuser may even try to delay the inevitable detection of his fraudulentactivities by having his friends and family perform check-ins to hisduplicate NFC device. But their combined check-in volume will like stillbe far less than the true check-in volume at the venue 100, and thussooner or later their fraud will be exposed.

After the server 120 determines who the fraudulent user is, it mayundertake any (or all) of the actions to punish the fraudulent user:delete the fraudulent chain; rescind any credit given to the user'sfraudulent check-ins; apprise the venue 100 of the user's fraudulentactivities so that the venue may take further actions against the useras necessary; and make announcements on a social media network regardingthe user's fraudulent activities.

The check-in chain discussed above may also need to be reset once in awhile, since the NFC tag device 130 does not have an infinite storagecapacity. For example, suppose the NFC tag device 130 can only store1000 check-in entries. Thus, as the 1000^(th) user checks in to thevenue 100, the server 120 may send a message via the check-in app to theuser. The message informs the user that he is the 1000^(th) person tocheck in to the venue 100, and that he needs to perform the taggingagain to confirm his status. Meanwhile, the check-in app has requested anew seed from the server 120. With the second tagging by the user, thecheck-in chain is now reset with the new seed, which may contain thelast few check-ins to ensure continuity. Thus, the check-in processdiscussed above may be repeated continuously. The venue 100 no longerneeds to be concerned about giving rewards to fraudulent users since theserver 120 can quickly identify the perpetrators.

FIG. 4 is a flowchart of a method 200 of verifying a user check-in. Themethod 200 includes a step 210 in which a digital check-in chain isinitialized for a venue. The venue may include a store, a restaurant, abar, a government building, a library, a park, etc. In some embodiments,the check-in chain is initialized by generating a check-in seed thatcontains information about the venue.

The method 200 includes a step 215 in which the check-in chain isexpanded with a plurality of check-in entries that each correspond to avisit to the venue by a respective user. Each check-in entry on thecheck-in chain is generated in response to one or more precedingcheck-in entries on the check-in chain. The check-in chain is expandedelectronically by a processor. In some embodiments, each check-in entrycontains a cryptographic signature of its corresponding user. In someembodiments, each cryptographic signature is generated as a function ofevery other existing cryptographic signature on the check-in chain. Insome embodiments, each check-in entry further contains a unique useridentification. In some embodiments, the step 215 further contains thefollowing steps: receiving a check-in request from a user, the check-inrequest containing information that is encrypted with a private keyassociated with the user; and validating the check-in request using apublic key associated with the user. In some embodiments, at least someof the check-in entries correspond to visits to the venue by the sameuser. In some embodiments, each check-in entry is generated using NFCtechnology.

The method 200 includes a step 220 in which fraudulent check-in entriesare detected in response to a split in the check-in chain. In someembodiments, the step 220 further includes the following steps:receiving multiple check-in requests corresponding to different users,wherein all the check-in requests depend from the same previous check-inentry on the check-in chain, thereby splitting the check-in chain intomultiple branches; monitoring subsequent check-in activities for eachbranch; and determining which branch is fraudulent based on thesubsequent check-in activities.

The method 200 includes a step 225 in which the fraudulent check-inentries are removed from the check-in chain. It is understood that themethod 200 may include additional steps that may be performed before,during, or after the steps 210-225. For example, after the fraudulentcheck-in entries are removed from the check-in chain, additionalpunishment may be levied against the users committing the fraud, such ascanceling the user's account, rescinding all the check-in credits givento the user, etc.

FIG. 5 is a flowchart of a method 250 of verifying a user check-in. Themethod 250 includes a step 260 in which a check-in seed is provided fora venue. The method 250 includes a step 265 in which a first check-inentry is received, the first check-in entry being a function of thecheck-in seed. In some embodiments, the first check-in entry contains afirst cryptographic signature. The first cryptographic signature isencrypted with a first private key. The method 250 includes a step 270in which the first check-in entry is verified electronically by acomputer processor. In some embodiments, the first check-in entry isverified by decrypting the first cryptographic signature. The method 250includes a step 275 in which a check-in chain is formed by appending thefirst check-in entry after the check-in seed if the first check-in entryis successfully verified.

The method 250 includes a step 280 in which a second check-in entry isreceived, the second check-in entry being a function of the check-inseed and the first check-in entry. In some embodiments, the secondcheck-in entry contains a second cryptographic signature. The secondcryptographic signature is encrypted with a second private key. Themethod 250 includes a step 285 in which the second check-in entry isverified electronically by a computer processor. In some embodiments,the second check-in entry is verified by decrypting the secondcryptographic signature.

The method 250 includes a step 290 in which the check-in chain isexpanded by appending the second check-in entry after the first check-inentry if the second check-in entry is successfully verified. In someembodiments, the first check-in entry and the second check-in entry areeach generated using a device equipped with NFC technology. It isunderstood that the method 250 may include additional steps that may beperformed before, during, or after the steps 260-290. For example, themethod 250 may further include a step in which the chain is continuouslyexpanded by verifying additional check-in entries and appending theadditional check-in entries to the check-in chain, wherein each check-inentry on the check-in chain is dependent on previous check-in entries onthe check-in chain. As another example, the method 250 may furtherinclude a step in which fraudulent check-ins are identified by detectinga break in the check-in chain. As yet another example, the method 250may further include a step in which the check-in chain is reset afterthe check-in chain has reached a predetermined number of check-inentries.

FIG. 6 is a block diagram of a computer system 300 suitable forimplementing various methods and devices described herein, for example,the various method steps of the method 200 or the method 250. In variousimplementations, the devices capable of performing the steps (forexample, the server 120) may comprise a network communications device(e.g., mobile cellular phone, laptop, personal computer, tablet, etc.),a network computing device (e.g., a network server, a computerprocessor, an electronic communications interface, etc), or anothersuitable device. Accordingly, it should be appreciated that the devicescapable of implementing the methods 200 and 250 may be implemented asthe computer system 300 in a manner as follows.

In accordance with various embodiments of the present disclosure, thecomputer system 300, such as a mobile communications device and/or anetwork server, includes a bus component 302 or other communicationmechanisms for communicating information, which interconnects subsystemsand components, such as processing component 304 (e.g., processor,micro-controller, digital signal processor (DSP), etc.), system memorycomponent 306 (e.g., RAM), static storage component 308 (e.g., ROM),disk drive component 310 (e.g., magnetic or optical), network interfacecomponent 312 (e.g., modem or Ethernet card), display component 314(e.g., cathode ray tube (CRT) or liquid crystal display (LCD)), inputcomponent 316 (e.g., keyboard), cursor control component 318 (e.g.,mouse or trackball), and image capture component 320 (e.g., analog ordigital camera). In one implementation, disk drive component 310 maycomprise a database having one or more disk drive components.

In accordance with embodiments of the present disclosure, computersystem 300 performs specific operations by processor 304 executing oneor more sequences of one or more instructions contained in system memorycomponent 306. Such instructions may be read into system memorycomponent 306 from another computer readable medium, such as staticstorage component 308 or disk drive component 310. In other embodiments,hard-wired circuitry may be used in place of (or in combination with)software instructions to implement the present disclosure.

Logic may be encoded in a computer readable medium, which may refer toany medium that participates in providing instructions to processor 304for execution. Such a medium may take many forms, including but notlimited to, non-volatile media and volatile media. In one embodiment,the computer readable medium is non-transitory. In variousimplementations, non-volatile media includes optical or magnetic disks,such as disk drive component 310, and volatile media includes dynamicmemory, such as system memory component 306. In one aspect, data andinformation related to execution instructions may be transmitted tocomputer system 300 via a transmission media, such as in the form ofacoustic or light waves, including those generated during radio wave andinfrared data communications. In various implementations, transmissionmedia may include coaxial cables, copper wire, and fiber optics,including wires that comprise bus 302.

Some common forms of computer readable media includes, for example,floppy disk, flexible disk, hard disk, magnetic tape, any other magneticmedium, CD-ROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, RAM, PROM, EPROM,FLASH-EPROM, any other memory chip or cartridge, carrier wave, or anyother medium from which a computer is adapted to read.

In various embodiments of the present disclosure, execution ofinstruction sequences to practice the present disclosure may beperformed by computer system 300. In various other embodiments of thepresent disclosure, a plurality of computer systems 300 coupled bycommunication link 330 (e.g., a communications network, such as a LAN,WLAN, PTSN, and/or various other wired or wireless networks, includingtelecommunications, mobile, and cellular phone networks) may performinstruction sequences to practice the present disclosure in coordinationwith one another.

Computer system 300 may transmit and receive messages, data, informationand instructions, including one or more programs (i.e., applicationcode) through communication link 330 and communication interface 312.Received program code may be executed by processor 304 as receivedand/or stored in disk drive component 310 or some other non-volatilestorage component for execution.

Where applicable, various embodiments provided by the present disclosuremay be implemented using hardware, software, or combinations of hardwareand software. Also, where applicable, the various hardware componentsand/or software components set forth herein may be combined intocomposite components comprising software, hardware, and/or both withoutdeparting from the spirit of the present disclosure. Where applicable,the various hardware components and/or software components set forthherein may be separated into sub-components comprising software,hardware, or both without departing from the scope of the presentdisclosure. In addition, where applicable, it is contemplated thatsoftware components may be implemented as hardware components andvice-versa.

Software, in accordance with the present disclosure, such as computerprogram code and/or data, may be stored on one or more computer readablemediums. It is also contemplated that software identified herein may beimplemented using one or more general purpose or specific purposecomputers and/or computer systems, networked and/or otherwise. Whereapplicable, the ordering of various steps described herein may bechanged, combined into composite steps, and/or separated into sub-stepsto provide features described herein.

It should be appreciated that like reference numerals are used toidentify like elements illustrated in one or more of the figures,wherein these labeled figures are for purposes of illustratingembodiments of the present disclosure and not for purposes of limitingthe same.

The foregoing disclosure is not intended to limit the present disclosureto the precise forms or particular fields of use disclosed. As such, itis contemplated that various alternate embodiments and/or modificationsto the present disclosure, whether explicitly described or impliedherein, are possible in light of the disclosure. Having thus describedembodiments of the present disclosure, persons of ordinary skill in theart will recognize that changes may be made in form and detail withoutdeparting from the scope of the present disclosure. Thus, the presentdisclosure is limited only by the claims.

What is claimed is:
 1. A method, comprising: initializing a digitalcheck-in chain for a venue; expanding, electronically by a processor,the check-in chain with a plurality of check-in entries that eachcorrespond to a visit to the venue by a respective user, wherein eachcheck-in entry on the check-in chain is generated in response to one ormore preceding check-in entries on the check-in chain; detectingfraudulent check-in entries in response to a split in the check-inchain; and removing the fraudulent check-in entries from the check-inchain
 2. The method of claim 1, wherein the initializing the digitalcheck-in chain comprises generating a check-in seed that containsinformation about the venue.
 3. The method of claim 1, wherein eachcheck-in entry contains a cryptographic signature of its correspondinguser.
 4. The method of claim 3, wherein each cryptographic signature isgenerated as a function of every other existing cryptographic signatureon the check-in chain.
 5. The method of claim 3, wherein each check-inentry further contains a unique user identification.
 6. The method ofclaim 1, wherein the expanding the check-in chain comprises: receiving acheck-in request from a user, the check-in request containinginformation that is signed with a private key associated with the user;and validating the check-in request using a public key associated withthe user.
 7. The method of claim 1, wherein at least some of thecheck-in entries correspond to visits to the venue by the same user. 8.The method of claim 1, wherein the detecting fraudulent check-in entriescomprises: receiving multiple check-in requests corresponding todifferent users, wherein all the check-in requests depend from the sameprevious check-in entry on the check-in chain, thereby splitting thecheck-in chain into multiple branches; monitoring subsequent check-inactivities for each branch; and determining which branch is fraudulentbased on the subsequent check-in activities.
 9. The method of claim 1,wherein each check-in entry is generated using a Near FieldCommunication (NFC) technology.
 10. An apparatus comprising anon-transitory, tangible computer readable storage medium storing acomputer program, wherein the computer program contains instructionsthat when executed, perform: initializing a digital check-in chain for avenue; expanding, electronically by a processor, the check-in chain witha plurality of check-in entries that each correspond to a visit to thevenue by a respective user, wherein each check-in entry on the check-inchain is generated in response to one or more preceding check-in entrieson the check-in chain; detecting fraudulent check-in entries in responseto a split in the check-in chain; and removing the fraudulent check-inentries from the check-in chain.
 11. The apparatus of claim 10, whereinthe instructions for initializing the digital check-in chain compriseinstructions for generating a check-in seed that contains informationabout the venue.
 12. The apparatus of claim 10, wherein each check-inentry contains a cryptographic signature of its corresponding user. 13.The apparatus of claim 12, wherein each cryptographic signature isgenerated as a function of every other existing cryptographic signatureon the check-in chain.
 14. The apparatus of claim 12, wherein eachcheck-in entry further contains a unique user identification.
 15. Theapparatus of claim 10, wherein the instructions for expanding thecheck-in chain comprise instructions for: receiving a check-in requestfrom a user, the check-in request containing information that is signedwith a private key associated with the user; and validating the check-inrequest using a public key associated with the user.
 16. The apparatusof claim 10, wherein at least some of the check-in entries correspond tovisits to the venue by the same user.
 17. The apparatus of claim 10,wherein the instructions for detecting fraudulent check-in entriescomprise instructions for: receiving multiple check-in requestscorresponding to different users, wherein all the check-in requestsdepend from the same previous check-in entry on the check-in chain,thereby splitting the check-in chain into multiple branches; monitoringsubsequent check-in activities for each branch; and determining whichbranch is fraudulent based on the subsequent check-in activities. 18.The apparatus of claim 10, wherein each check-in entry is generatedusing a Near Field Communication (NFC) technology.
 19. A method,comprising: providing a check-in seed for a venue; receiving a firstcheck-in entry, the first check-in entry being a function of thecheck-in seed; verifying, electronically by a processor, the firstcheck-in entry; forming a check-in chain by appending the first check-inentry after the check-in seed if the first check-in entry issuccessfully verified; receiving a second check-in entry, the secondcheck-in entry being a function of the check-in seed and the firstcheck-in entry; verifying, electronically by the processor, the secondcheck-in entry; and expanding the check-in chain by appending the secondcheck-in entry after the first check-in entry if the second check-inentry is successfully verified.
 20. The method of claim 19, wherein: thefirst check-in entry and the second check-in entry contain a firstcryptographic signature and a second cryptographic signature,respectively; and the verifying the first check-in entry and theverifying the second check-in entry are performed by verifying the firstcryptographic signature and verifying the second cryptographicsignature, respectively.
 21. The method of claim 20, wherein the firstcryptographic signature and the second cryptographic signature aregenerated with a first private key and a second private key,respectively.
 22. The method of claim 20, wherein the verifying thefirst check-in entry and the verifying the second check-in entry areperformed at least in part by verifying the first cryptographicsignature with a first public key and verifying the second cryptographicsignature with a second public key, respectively.
 23. The method ofclaim 19, further comprising: continuously expanding the chain byverifying additional check-in entries and appending the additionalcheck-in entries to the check-in chain, wherein each check-in entry onthe check-in chain is dependent on previous check-in entries on thecheck-in chain.
 24. The method of claim 23, further comprising:identifying fraudulent check-ins by detecting a break in the check-inchain.
 25. The method of claim 23, further comprising: resetting thecheck-in chain after the check-in chain has reached a predeterminednumber of check-in entries.
 26. The method of claim 19, wherein thefirst check-in entry and the second check-in entry are each generatedusing a device equipped with a Near Field Communications (NFC)technology.